package com.vhall.component.service.gift;

import com.vhall.component.entity.gift.dto.*;
import com.vhall.component.entity.gift.vo.*;
import com.vhall.component.entity.page.vo.PageVO;


/**
 * ClsGiftService-
 *
 * @author xing.wang
 * @date 2022/10/10
 */
public interface ClsGiftService {
    /**
     * 未关联到当前房间的表情列表
     *
     * @param vo 参数
     * @return 未关联到当前房间的表情列表
     */
    PageVO<GiftListDataDTO> unboundRoomList(GiftUnbindRoomListVO vo);

    /**
     * 获取关联到房间的表情列表
     *
     * @param vo 参数
     * @return 获取关联到房间的表情列表
     */
    GiftPageDTO<GiftBindListDTO> bindRoomList(GiftBindRoomListVO vo);

    /**
     * 进行房间与表情关联/修改发送频率设置
     *
     * @param vo 参数
     * @return 更新/绑定是否成功
     */
    Boolean bindRoomChangeFrequency(GiftBindRoomVO vo);

    /**
     * 解绑房间和表情的关系
     *
     * @param vo 参数
     * @return 是否更新成功
     */
    Boolean unbindRoom(GiftUnbindRoomVO vo);

    /**
     * 设置关联后表情的排序序号
     *
     * @param vo 参数
     * @return 是否更新成功
     */
    Boolean setSort(GiftChangeSortRoomVO vo);

    /**
     * 统计房间内表情数据信息
     *
     * @param vo 参数
     * @return 房间下表情统计信息列表
     */
    PageVO<GiftRoomStatDTO> statRoomDataList(GiftRoomStatVO vo);

    /**
     * 房间表情赠送详情列表
     *
     * @param vo 参数
     * @return 房间表情赠送详情列表
     */
    PageVO<GiftRoomStatDetailDTO> statRoomDetailDataList(GiftRoomStatDetailVO vo);

    /**
     * 异步导出指定日期范围内的表情赠送数据
     *
     * @param vo 参数
     * @return 是否导出成功
     */
    Boolean exportGift(GiftRecordExportVO vo);
}
